home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!snorkelwacker!usc!cs.utexas.edu!sun-barr!newstop!sun!CS.UCLA.EDU
- From: william@CS.UCLA.EDU (William Cheng)
- Newsgroups: comp.sources.x
- Subject: v08i095: tgif, (tgif-1.14 => tgif-1.15), Patch5, Part01/01
- Message-ID: <141428@sun.Eng.Sun.COM>
- Date: 28 Aug 90 07:45:02 GMT
- Sender: news@sun.Eng.Sun.COM
- Lines: 598
- Approved: argv@sun.com
-
- Submitted-by: william@CS.UCLA.EDU (William Cheng)
- Posting-number: Volume 8, Issue 95
- Archive-name: tgif/patch5
- Patch-To: tgif: Volume 7, Issue 56-76 (original: tgif-1.2)
- Patch-To: tgif: Volume 8, Issue 46-48 (Patch1: tgif-1.2 => tgif-1.9)
- Patch-To: tgif: Volume 8, Issue 58-60 (Patch2: tgif-1.9 => tgif-1.12)
- Patch-To: tgif: Volume 8, Issue 87-89 (Patch3: tgif-1.12 => tgif-1.13)
- Patch-To: tgif: Volume 8, Issue 94 (Patch4: tgif-1.13 => tgif-1.14)
-
- Patch5 of tgif takes tgif-1.14 to tgif-1.15. Below is a list of
- added features/bug fixes, followed by the actual patch.
-
- tgif-1.14 => tgif-1.15
-
- 1) Fix bugs related to rewind() that it should not return any status.
- Thanks to Carl Witty@Stanford for the patch.
- 2) Upgrade 'tgif.pl' (Prolog hints) to handle file version 8.
-
- ---------------------------------> cut here <---------------------------------
- *** copypaste.c.orig Mon Aug 27 11:30:57 1990
- --- copypaste.c Mon Aug 27 11:30:58 1990
- ***************
- *** 7,11 ****
- #ifndef lint
- static char RCSid[] =
- ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/copypaste.c,v 1.7 90/08/16 13:32:44 william Exp $";
- #endif
-
- --- 7,11 ----
- #ifndef lint
- static char RCSid[] =
- ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/copypaste.c,v 1.8 90/08/25 17:26:51 william Exp $";
- #endif
-
- ***************
- *** 89,99 ****
- cutBuffer = (char *) calloc (stat.st_size, sizeof(char));
-
- ! if (rewind (fp) < 0)
- {
- - sprintf (message, "Error in rewinding %s. Copy aborted!", tmpfile);
- - Msg (message);
- - }
- - else if (read (fileno(fp), cutBuffer, stat.st_size) < stat.st_size)
- - {
- sprintf (message, "READ error in %s. Copy aborted!", tmpfile);
- Msg (message);
- --- 89,95 ----
- cutBuffer = (char *) calloc (stat.st_size, sizeof(char));
-
- ! rewind(fp);
- ! if (read (fileno(fp), cutBuffer, stat.st_size) < stat.st_size)
- {
- sprintf (message, "READ error in %s. Copy aborted!", tmpfile);
- Msg (message);
- ***************
- *** 246,257 ****
- }
- fflush (fp);
- ! if (rewind (fp) < 0)
- ! {
- ! fclose (fp);
- ! unlink (tmpfile);
- ! sprintf (message, "Error in rewinding %s. Paste aborted!", tmpfile);
- ! Msg (message);
- ! return;
- ! }
-
- TieLooseEnds ();
- --- 242,246 ----
- }
- fflush (fp);
- ! rewind (fp);
-
- TieLooseEnds ();
- *** version.c.orig Mon Aug 27 11:31:04 1990
- --- version.c Mon Aug 27 11:31:04 1990
- ***************
- *** 6,11 ****
- #ifndef lint
- static char RCSid[] =
- ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/version.c,v 1.17 90/08/21 21:30:03 william Exp $";
- #endif
-
- ! char * version_string = "1.14";
- --- 6,11 ----
- #ifndef lint
- static char RCSid[] =
- ! "@(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/version.c,v 1.19 90/08/27 10:32:54 william Exp $";
- #endif
-
- ! char * version_string = "1.15";
- *** Makefile.noimake.orig Mon Aug 27 11:31:09 1990
- --- Makefile.noimake Mon Aug 27 11:31:10 1990
- ***************
- *** 4,8 ****
- # Copyright (C) 1990, William Cheng.
- #
- ! # @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/Makefile.noimake,v 1.23 90/08/21 16:09:05 william Exp $
- #
-
- --- 4,8 ----
- # Copyright (C) 1990, William Cheng.
- #
- ! # @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/Makefile.noimake,v 1.25 90/08/27 11:29:48 william Exp $
- #
-
- ***************
- *** 10,14 ****
- LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
-
- ! INSTALLDIR = /u/tangram/bin
-
- CC = cc
- --- 10,15 ----
- LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
-
- ! TGIFVERSION = 1.15
- ! INSTALLDIR = /u/tangram/bin
-
- CC = cc
- ***************
- *** 215,219 ****
-
- tar:
- ! tar cvf tgif-1.0.tar *.c *.e *.h Makefile.noimake Imakefile \
- bitmaps/*.bm .psmac .*port .*land tgificon.obj \
- $(OBJDEMO) \
- --- 216,226 ----
-
- tar:
- ! @if [ `hostname` != rye ] ; then \
- ! echo ''; \
- ! echo ' Error: Can only generate tar file on rye'; \
- ! echo ''; \ exit 1; \
- ! fi;
- ! rm -f tgif-$(TGIFVERSION).tar*
- ! tar cvf tgif-$(TGIFVERSION).tar *.c *.e *.h Makefile.noimake Imakefile \
- bitmaps/*.bm .psmac .*port .*land tgificon.obj \
- $(OBJDEMO) \
- ***************
- *** 220,224 ****
- $(SYMDEMO) \
- $(MISCTAR)
- ! compress tgif-1.0.tar
-
- clean:
- --- 227,231 ----
- $(SYMDEMO) \
- $(MISCTAR)
- ! compress tgif-$(TGIFVERSION).tar
-
- clean:
- *** Imakefile.orig Mon Aug 27 11:31:16 1990
- --- Imakefile Mon Aug 27 11:31:17 1990
- ***************
- *** 4,11 ****
- /**/# Copyright (C) 1990, William Cheng.
- /**/#
- ! /**/# @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/Imakefile,v 1.25 90/08/21 21:30:40 william Exp $
- /**/#
-
- ! TGIFVERSION = 1.14
- PROGRAMS = tgif prtgif tgif2ps frontend11.o
- /**/#CDEBUGFLAGS= -g
- --- 4,11 ----
- /**/# Copyright (C) 1990, William Cheng.
- /**/#
- ! /**/# @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/Imakefile,v 1.28 90/08/27 11:29:39 william Exp $
- /**/#
-
- ! TGIFVERSION = 1.15
- PROGRAMS = tgif prtgif tgif2ps frontend11.o
- /**/#CDEBUGFLAGS= -g
- ***************
- *** 66,69 ****
- --- 66,74 ----
-
- tar:
- + @if [ `hostname` != rye ] ; then \
- + echo ''; \
- + echo ' Error: Can only generate tar file on rye'; \
- + echo ''; \ exit 1; \
- + fi;
- rm -f tgif-$(TGIFVERSION).tar/**/*
- tar cvf tgif-$(TGIFVERSION).tar /**/*.c /**/*.e /**/*.h \
- *** tgif.pl.orig Mon Aug 27 11:31:21 1990
- --- tgif.pl Mon Aug 27 11:31:22 1990
- ***************
- *** 1,141 ****
- %
- ! % Consult a '.obj' file or a '.sym' file, then try to trace the following
- ! % code.
- %
- ! % @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/tgif.pl,v 1.3 90/07/30 17:30:05 william Exp $
- %
-
- ! tgif_state(FileVersion) :-
- ! % Note: This works for FileVersion>=6.
- ! state(_PageStyle,FileVersion,_OrigX,_OrigY,_Zoom,_GridSize,_Grid,
- ! _Color,_HoriAlign,_VertAlign,_LineWidth,_Spline,_LineStyle,
- ! _ObjFill,_PenPat,_TextJust,_Font,_TextStyle,_TextSize).
- !
- ! tgif_text(FileVersion, Obj) :-
- ! FileVersion == 6,
- ! ( var(Obj) ->
- ! Obj = text(_Color,_X,_Y,_Font,_TextStyle,_TextSize,_NumLines,
- ! _TextJust,_TextRotate,_PenPat,StrList),
- ! call(Obj)
- ! ; Obj = text(_Color,_X,_Y,_Font,_TextStyle,_TextSize,_NumLines,
- ! _TextJust,_TextRotate,_PenPat,StrList)
- ),
- ! tgif_strs(FileVersion, StrList).
- ! tgif_text(FileVersion, Obj) :-
- ! FileVersion >= 7,
- ! ( var(Obj) ->
- ! Obj = text(_Color,_X,_Y,_Font,_TextStyle,_TextSize,_NumLines,
- ! _TextJust,_TextRotate,_PenPat,_BBoxW,_BBoxH,StrList),
- ! call(Obj)
- ! ; Obj = text(_Color,_X,_Y,_Font,_TextStyle,_TextSize,_NumLines,
- ! _TextJust,_TextRotate,_PenPat,_BBoxW,_BBoxH,StrList)
- ),
- ! tgif_strs(FileVersion, StrList).
-
- ! tgif_box(FileVersion, Obj) :-
- ! FileVersion >= 6,
- ! ( var(Obj) ->
- ! Obj = box(_Color,_X1,_Y1,_X2,_Y2,_ObjFill,_LineWidth,_PenPat),
- ! call(Obj)
- ! ; Obj = box(_Color,_X1,_Y1,_X2,_Y2,_ObjFill,_LineWidth,_PenPat)
- ! ).
-
- ! tgif_oval(FileVersion, Obj) :-
- ! FileVersion >= 6,
- ! ( var(Obj) ->
- ! Obj = oval(_Color,_LeftTopX,_LeftTopY,_RightBotX,_RightBotY,
- ! _ObjFill,_LineWidth,_PenPat),
- ! call(Obj)
- ! ; Obj = oval(_Color,_LeftTopX,_LeftTopY,_RightBotX,_RightBotY,
- ! _ObjFill,_LineWidth,_PenPat)
- ! ).
-
- ! tgif_poly(FileVersion, Obj) :-
- ! FileVersion >= 6,
- ! ( var(Obj) ->
- ! Obj = poly(_Color,_NumVs,_Vs,_LineStyle,_LineWidth,_PenPat,_Id,
- ! _Spline,_ObjFill,AttrList),
- ! call(Obj)
- ! ; Obj = poly(_Color,_NumVs,_Vs,_LineStyle,_LineWidth,_PenPat,_Id,
- ! _Spline,_ObjFill,AttrList)
- ! ),
- ! tgif_attrs(FileVersion, AttrList).
-
- ! tgif_polygon(FileVersion, Obj) :-
- ! FileVersion >= 6,
- ! ( var(Obj) ->
- ! Obj = polygon(_Color,_NumVs,_Vs,_ObjFill,_LineWidth,_PenPat,
- ! _Spline),
- ! call(Obj)
- ! ; Obj = polygon(_Color,_NumVs,_Vs,_ObjFill,_LineWidth,_PenPat,
- ! _Spline)
- ! ).
-
- ! tgif_group(FileVersion, Obj) :-
- ! FileVersion >= 6,
- ! ( var(Obj) ->
- ! Obj = group(ObjList,AttrList),
- ! call(Obj)
- ! ; Obj = group(ObjList,AttrList)
- ! ),
- ! tgif_objs(FileVersion, ObjList),
- ! tgif_attrs(FileVersion, AttrList).
-
- ! tgif_sym(FileVersion, Obj) :-
- ! FileVersion >= 6,
- ! ( var(Obj) ->
- ! Obj = sym(ObjList,AttrList),
- ! call(Obj)
- ! ; Obj = sym(ObjList,AttrList)
- ! ),
- ! tgif_objs(FileVersion, ObjList),
- ! tgif_attrs(FileVersion, AttrList).
-
- ! tgif_icon(FileVersion, Obj) :-
- ! FileVersion >= 6,
- ! ( var(Obj) ->
- ! Obj = icon(ObjList,_Name,_Id,AttrList),
- ! call(Obj)
- ! ; Obj = icon(ObjList,_Name,_Id,AttrList)
- ! ),
- ! tgif_objs(FileVersion, ObjList),
- ! tgif_attrs(FileVersion, AttrList).
-
- ! % ----------------------------- support routines --------------------------- %
-
- ! tgif_strs(_FileVersion, []) :- !.
- ! tgif_strs(FileVersion, [_Str|Strs]) :-
- ! FileVersion >= 6,
- ! !, tgif_strs(FileVersion, Strs).
-
- ! tgif_objs(_FileVersion, []) :- !.
- ! tgif_objs(FileVersion, [Obj|Objs]) :-
- ! FileVersion >= 6,
- !,
- functor(Obj,Functor,_Arity),
- ( Functor == text ->
- ! tgif_text(FileVersion, Obj)
- ; Functor == box ->
- ! tgif_box(FileVersion, Obj)
- ; Functor == oval ->
- ! tgif_oval(FileVersion, Obj)
- ; Functor == poly ->
- ! tgif_poly(FileVersion, Obj)
- ; Functor == polygon ->
- ! tgif_polygon(FileVersion, Obj)
- ; Functor == group ->
- ! tgif_group(FileVersion, Obj)
- ; Functor == sym ->
- ! tgif_sym(FileVersion, Obj)
- ; Functor == icon ->
- ! tgif_icon(FileVersion, Obj)
- ; true
- ),
- ! !, tgif_objs(FileVersion, Objs).
-
- ! tgif_attrs(_FileVersion, []) :- !.
- ! tgif_attrs(FileVersion, [Attr|Attrs]) :-
- ! FileVersion >= 6,
- ! !,
- ! Attr = attr(_Name,_Value,_ShowAll,_ShowNameOnly,_Inherited,_TextObj),
- ! !, tgif_attrs(FileVersion, Attrs).
- --- 1,256 ----
- %
- ! % 1) Call tgif_clean/0 each time before step (2).
- ! % 2) Consult a '.obj' or a '.sym' file.
- ! % 3) Call tgif_state/2. This must be called before any other tgif goals
- ! % are called.
- ! % 4) Trace any other goals.
- %
- ! % @(#)$Header: /n/kona/u/tangram/u/william/X11/TGIF/RCS/tgif.pl,v 1.5 90/08/27 11:19:13 william Exp $
- %
-
- ! tgif_state(FileVersion,Obj) :-
- ! ( var(Obj) -> OutputObj = true,
- ! current_predicate(state,
- ! state(_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
- ! ; OutputObj = false
- ),
- ! Obj = state(_PageStyle,FileVersion,_OrigX,_OrigY,_Zoom,
- ! _GridSize,_Grid,_Color,_HoriAlign,_VertAlign,_LineWidth,
- ! _LineStyle,_ObjFill,_PenPat,_TextJust,_Font,
- ! _TextStyle,_TextSize),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! FileVersion =< 3,
- ! !, abolish(tgif_file_version/1),
- ! !, assert(tgif_file_version(FileVersion)).
- ! tgif_state(FileVersion,Obj) :-
- ! ( var(Obj) -> OutputObj = true,
- ! current_predicate(state,
- ! state(_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
- ! ; OutputObj = false
- ),
- ! Obj = state(_PageStyle,FileVersion,_OrigX,_OrigY,_Zoom,
- ! _GridSize,_Grid,_Color,_HoriAlign,_VertAlign,_LineWidth,
- ! _Spline,_LineStyle,_ObjFill,_PenPat,_TextJust,_Font,
- ! _TextStyle,_TextSize),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! FileVersion =< 7,
- ! !, abolish(tgif_file_version/1),
- ! !, assert(tgif_file_version(FileVersion)).
- ! tgif_state(FileVersion,Obj) :-
- ! ( var(Obj) -> OutputObj = true,
- ! current_predicate(state,
- ! state(_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_))
- ! ; OutputObj = false
- ! ),
- ! Obj = state(_PageStyle,FileVersion,_OrigX,_OrigY,_Zoom,
- ! _GridSize,_Grid,_Color,_HoriAlign,_VertAlign,_LineWidth,
- ! _Spline,_LineStyle,_ObjFill,_PenPat,_TextJust,_Font,
- ! _TextStyle,_TextSize,_TextDPI),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! FileVersion >= 8,
- ! !, abolish(tgif_file_version/1),
- ! !, assert(tgif_file_version(FileVersion)).
-
- ! % --------------------------------------------------------------------- %
-
- ! tgif_text(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion =< 2, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = text(_Color,_X,_Y,_Font,_TextStyle,_TextSize,_NumLines,_TextJust,
- ! StrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_strs(StrList).
- ! tgif_text(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion =< 6, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = text(_Color,_X,_Y,_Font,_TextStyle,_TextSize,_NumLines,_TextJust,
- ! _TextRotate,_PenPat,StrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_strs(StrList).
- ! tgif_text(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion =< 7, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = text(_Color,_X,_Y,_Font,_TextStyle,_TextSize,_NumLines,_TextJust,
- ! _TextRotate,_PenPat,_BBoxW,_BBoxH,StrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_strs(StrList).
- ! tgif_text(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion >= 8, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = text(_Color,_X,_Y,_Font,_TextStyle,_TextSize,_NumLines,_TextJust,
- ! _TextRotate,_PenPat,_BBoxW,_BBoxH,_Id,_TextDPI,StrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_strs(StrList).
-
- ! % --------------------------------------------------------------------- %
-
- ! tgif_box(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion =< 7, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = box(_Color,_X1,_Y1,_X2,_Y2,_ObjFill,_LineWidth,_PenPat),
- ! ( OutputObj == true -> call(Obj) ; true ).
- ! tgif_box(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion >= 8, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = box(_Color,_X1,_Y1,_X2,_Y2,_ObjFill,_LineWidth,_PenPat,_Id,
- ! AttrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_attrs(AttrList).
-
- ! % --------------------------------------------------------------------- %
-
- ! tgif_oval(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion =< 7, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = oval(_Color,_LeftTopX,_LeftTopY,_RightBotX,_RightBotY,_ObjFill,
- ! _LineWidth,_PenPat),
- ! ( OutputObj == true -> call(Obj) ; true ).
- ! tgif_oval(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion >= 8, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = oval(_Color,_LeftTopX,_LeftTopY,_RightBotX,_RightBotY,_ObjFill,
- ! _LineWidth,_PenPat,_Id,AttrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_attrs(AttrList).
-
- ! % --------------------------------------------------------------------- %
-
- ! tgif_poly(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion =< 3, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = poly(_Color,_NumVs,_Vs,_LineStyle,_LineWidth,_PenPat,_Id,
- ! AttrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_attrs(AttrList).
- ! tgif_poly(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion =< 4, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = poly(_Color,_NumVs,_Vs,_LineStyle,_LineWidth,_PenPat,_Id,_Spline,
- ! AttrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_attrs(AttrList).
- ! tgif_poly(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion >= 5, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = poly(_Color,_NumVs,_Vs,_LineStyle,_LineWidth,_PenPat,_Id,_Spline,
- ! _ObjFill,AttrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_attrs(AttrList).
-
- ! % --------------------------------------------------------------------- %
-
- ! tgif_polygon(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion =< 3, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = polygon(_Color,_NumVs,_Vs,_ObjFill,_LineWidth,_PenPat),
- ! ( OutputObj == true -> call(Obj) ; true ).
- ! tgif_polygon(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion =< 7, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = polygon(_Color,_NumVs,_Vs,_ObjFill,_LineWidth,_PenPat,_Spline),
- ! ( OutputObj == true -> call(Obj) ; true ).
- ! tgif_polygon(Obj) :-
- ! current_predicate(tgif_file_version,tgif_file_version(_)),
- ! tgif_file_version(FileVersion),
- ! FileVersion >= 8, !,
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = polygon(_Color,_NumVs,_Vs,_ObjFill,_LineWidth,_PenPat,_Spline,
- ! _Id,AttrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_attrs(AttrList).
- !
- ! % --------------------------------------------------------------------- %
- !
- ! tgif_group(Obj) :-
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = group(ObjList,AttrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_objs(ObjList),
- ! tgif_attrs(AttrList).
- !
- ! % --------------------------------------------------------------------- %
- !
- ! tgif_sym(Obj) :-
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = sym(ObjList,AttrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_objs(ObjList),
- ! tgif_attrs(AttrList).
- !
- ! % --------------------------------------------------------------------- %
- !
- ! tgif_icon(Obj) :-
- ! ( var(Obj) -> OutputObj = true ; OutputObj = false ),
- ! Obj = icon(ObjList,_Name,_Id,AttrList),
- ! ( OutputObj == true -> call(Obj) ; true ),
- ! tgif_objs(ObjList),
- ! tgif_attrs(AttrList).
- !
- ! % ======================== support routines =========================== %
- !
- ! tgif_clean :- abolish(state/18), abolish(state/19), abolish(state/20).
- !
- ! % --------------------------------------------------------------------- %
- !
- ! tgif_strs([]) :- !.
- ! tgif_strs([_Str|Strs]) :- !, tgif_strs(Strs).
- !
- ! % --------------------------------------------------------------------- %
- !
- ! tgif_objs([]) :- !.
- ! tgif_objs([Obj|Objs]) :-
- !,
- functor(Obj,Functor,_Arity),
- ( Functor == text ->
- ! tgif_text(Obj)
- ; Functor == box ->
- ! tgif_box(Obj)
- ; Functor == oval ->
- ! tgif_oval(Obj)
- ; Functor == poly ->
- ! tgif_poly(Obj)
- ; Functor == polygon ->
- ! tgif_polygon(Obj)
- ; Functor == group ->
- ! tgif_group(Obj)
- ; Functor == sym ->
- ! tgif_sym(Obj)
- ; Functor == icon ->
- ! tgif_icon(Obj)
- ; true
- ),
- ! !, tgif_objs(Objs).
-
- ! % --------------------------------------------------------------------- %
- !
- ! tgif_attrs([]) :- !.
- ! tgif_attrs([Attr|Attrs]) :-
- ! Attr = attr(_Name,_Value,_ShowAll,_ShowNameOnly,_Inherited,TextObj),
- ! tgif_text(TextObj),
- ! !, tgif_attrs(Attrs).
- ---------------------------------> cut here <---------------------------------
- --
- Bill Cheng // UCLA Computer Science Department // (213) 206-7135
- 3277 Boelter Hall // Los Angeles, California 90024 // USA
- william@CS.UCLA.EDU ...!{uunet|ucbvax}!cs.ucla.edu!william
-
- dan
- ----------------------------------------------------
- O'Reilly && Associates argv@sun.com / argv@ora.com
- Opinions expressed reflect those of the author only.
-